home *** CD-ROM | disk | FTP | other *** search
/ Freelog 125 / Freelog_MarsAvril2015_No125.iso / Musique / Quod Libet / quodlibet-3.3.0-installer.exe / bin / multiprocessing / __init__.pyc (.txt) next >
Python Compiled Bytecode  |  2014-12-31  |  8KB  |  281 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.7)
  3.  
  4. __version__ = '0.70a1'
  5. __all__ = [
  6.     'Process',
  7.     'current_process',
  8.     'active_children',
  9.     'freeze_support',
  10.     'Manager',
  11.     'Pipe',
  12.     'cpu_count',
  13.     'log_to_stderr',
  14.     'get_logger',
  15.     'allow_connection_pickling',
  16.     'BufferTooShort',
  17.     'TimeoutError',
  18.     'Lock',
  19.     'RLock',
  20.     'Semaphore',
  21.     'BoundedSemaphore',
  22.     'Condition',
  23.     'Event',
  24.     'Queue',
  25.     'JoinableQueue',
  26.     'Pool',
  27.     'Value',
  28.     'Array',
  29.     'RawValue',
  30.     'RawArray',
  31.     'SUBDEBUG',
  32.     'SUBWARNING']
  33. __author__ = 'R. Oudkerk (r.m.oudkerk@gmail.com)'
  34. import os
  35. import sys
  36. from multiprocessing.process import Process, current_process, active_children
  37. from multiprocessing.util import SUBDEBUG, SUBWARNING
  38.  
  39. class ProcessError(Exception):
  40.     pass
  41.  
  42.  
  43. class BufferTooShort(ProcessError):
  44.     pass
  45.  
  46.  
  47. class TimeoutError(ProcessError):
  48.     pass
  49.  
  50.  
  51. class AuthenticationError(ProcessError):
  52.     pass
  53.  
  54. import _multiprocessing
  55.  
  56. def Manager():
  57.     '''
  58.     Returns a manager associated with a running server process
  59.  
  60.     The managers methods such as `Lock()`, `Condition()` and `Queue()`
  61.     can be used to create shared objects.
  62.     '''
  63.     SyncManager = SyncManager
  64.     import multiprocessing.managers
  65.     m = SyncManager()
  66.     m.start()
  67.     return m
  68.  
  69.  
  70. def Pipe(duplex = True):
  71.     '''
  72.     Returns two connection object connected by a pipe
  73.     '''
  74.     Pipe = Pipe
  75.     import multiprocessing.connection
  76.     return Pipe(duplex)
  77.  
  78.  
  79. def cpu_count():
  80.     '''
  81.     Returns the number of CPUs in the system
  82.     '''
  83.     if sys.platform == 'win32':
  84.         
  85.         try:
  86.             num = int(os.environ['NUMBER_OF_PROCESSORS'])
  87.         except (ValueError, KeyError):
  88.             num = 0
  89.         
  90.  
  91.     if 'bsd' in sys.platform or sys.platform == 'darwin':
  92.         comm = '/sbin/sysctl -n hw.ncpu'
  93.         if sys.platform == 'darwin':
  94.             comm = '/usr' + comm
  95.         
  96.         try:
  97.             with os.popen(comm) as p:
  98.                 num = int(p.read())
  99.         except ValueError:
  100.             num = 0
  101.         
  102.  
  103.     
  104.     try:
  105.         num = os.sysconf('SC_NPROCESSORS_ONLN')
  106.     except (ValueError, OSError, AttributeError):
  107.         num = 0
  108.  
  109.     if num >= 1:
  110.         return num
  111.     raise None('cannot determine number of cpus')
  112.  
  113.  
  114. def freeze_support():
  115.     '''
  116.     Check whether this is a fake forked process in a frozen executable.
  117.     If so then run code specified by commandline and exit.
  118.     '''
  119.     if sys.platform == 'win32' and getattr(sys, 'frozen', False):
  120.         freeze_support = freeze_support
  121.         import multiprocessing.forking
  122.         freeze_support()
  123.  
  124.  
  125. def get_logger():
  126.     '''
  127.     Return package logger -- if it does not already exist then it is created
  128.     '''
  129.     get_logger = get_logger
  130.     import multiprocessing.util
  131.     return get_logger()
  132.  
  133.  
  134. def log_to_stderr(level = None):
  135.     '''
  136.     Turn on logging and add a handler which prints to stderr
  137.     '''
  138.     log_to_stderr = log_to_stderr
  139.     import multiprocessing.util
  140.     return log_to_stderr(level)
  141.  
  142.  
  143. def allow_connection_pickling():
  144.     '''
  145.     Install support for sending connections and sockets between processes
  146.     '''
  147.     reduction = reduction
  148.     import multiprocessing
  149.  
  150.  
  151. def Lock():
  152.     '''
  153.     Returns a non-recursive lock object
  154.     '''
  155.     Lock = Lock
  156.     import multiprocessing.synchronize
  157.     return Lock()
  158.  
  159.  
  160. def RLock():
  161.     '''
  162.     Returns a recursive lock object
  163.     '''
  164.     RLock = RLock
  165.     import multiprocessing.synchronize
  166.     return RLock()
  167.  
  168.  
  169. def Condition(lock = None):
  170.     '''
  171.     Returns a condition object
  172.     '''
  173.     Condition = Condition
  174.     import multiprocessing.synchronize
  175.     return Condition(lock)
  176.  
  177.  
  178. def Semaphore(value = 1):
  179.     '''
  180.     Returns a semaphore object
  181.     '''
  182.     Semaphore = Semaphore
  183.     import multiprocessing.synchronize
  184.     return Semaphore(value)
  185.  
  186.  
  187. def BoundedSemaphore(value = 1):
  188.     '''
  189.     Returns a bounded semaphore object
  190.     '''
  191.     BoundedSemaphore = BoundedSemaphore
  192.     import multiprocessing.synchronize
  193.     return BoundedSemaphore(value)
  194.  
  195.  
  196. def Event():
  197.     '''
  198.     Returns an event object
  199.     '''
  200.     Event = Event
  201.     import multiprocessing.synchronize
  202.     return Event()
  203.  
  204.  
  205. def Queue(maxsize = 0):
  206.     '''
  207.     Returns a queue object
  208.     '''
  209.     Queue = Queue
  210.     import multiprocessing.queues
  211.     return Queue(maxsize)
  212.  
  213.  
  214. def JoinableQueue(maxsize = 0):
  215.     '''
  216.     Returns a queue object
  217.     '''
  218.     JoinableQueue = JoinableQueue
  219.     import multiprocessing.queues
  220.     return JoinableQueue(maxsize)
  221.  
  222.  
  223. def Pool(processes = None, initializer = None, initargs = (), maxtasksperchild = None):
  224.     '''
  225.     Returns a process pool object
  226.     '''
  227.     Pool = Pool
  228.     import multiprocessing.pool
  229.     return Pool(processes, initializer, initargs, maxtasksperchild)
  230.  
  231.  
  232. def RawValue(typecode_or_type, *args):
  233.     '''
  234.     Returns a shared object
  235.     '''
  236.     RawValue = RawValue
  237.     import multiprocessing.sharedctypes
  238.     return RawValue(typecode_or_type, *args)
  239.  
  240.  
  241. def RawArray(typecode_or_type, size_or_initializer):
  242.     '''
  243.     Returns a shared array
  244.     '''
  245.     RawArray = RawArray
  246.     import multiprocessing.sharedctypes
  247.     return RawArray(typecode_or_type, size_or_initializer)
  248.  
  249.  
  250. def Value(typecode_or_type, *args, **kwds):
  251.     '''
  252.     Returns a synchronized shared object
  253.     '''
  254.     Value = Value
  255.     import multiprocessing.sharedctypes
  256.     return Value(typecode_or_type, *args, **kwds)
  257.  
  258.  
  259. def Array(typecode_or_type, size_or_initializer, **kwds):
  260.     '''
  261.     Returns a synchronized shared array
  262.     '''
  263.     Array = Array
  264.     import multiprocessing.sharedctypes
  265.     return Array(typecode_or_type, size_or_initializer, **kwds)
  266.  
  267. if sys.platform == 'win32':
  268.     
  269.     def set_executable(executable):
  270.         '''
  271.         Sets the path to a python.exe or pythonw.exe binary used to run
  272.         child processes on Windows instead of sys.executable.
  273.         Useful for people embedding Python.
  274.         '''
  275.         set_executable = set_executable
  276.         import multiprocessing.forking
  277.         set_executable(executable)
  278.  
  279.     __all__ += [
  280.         'set_executable']
  281.